This invention relates generally to the field of virtual Machines (VM's) and clustering of hyper-visor nodes. Mainly to improving density of virtual machines (VM's), throughput of data, and cost by modifying the method and design of creating a hyper-visor cluster. Hyper-visors are operating systems with a file system are used to run virtual machine(s). virtual machines are colloquially referred to as operating system environments (which has its own file system) that can be run within another operating system known as the host OS, but act independently from the host operating system and the host operating systems file system. The host operating system environment is colloquially known as a hyper-visor, and allows the system to boot off local hardware. Clustering of hyper-visor nodes allows for High-availability (HA). High availability allows a system to sustain a level of failures amongst the components that make up the system. The nodes of the cluster have network connections between them and to shared storage systems.
Hyper-visor clusters typically consist of one or more computers known as nodes. Each node has an operating system meant for loading and running virtual machines, known as a hyper-visor. These nodes are then typically connected to a shared storage system through a system of data connection and switching devices generally known as a storage area network (SAN), however the storage systems are also colloquially known as SANs, SAN storage, or SAN devices. This is demonstrated in FIG. 1. These SAN devices store file system data mainly for Virtual machines on their local disks usually in some form of RAID array. When nodes of the cluster boot, there hyper-visor connects to the SAN devices, and runs one or more virtual machines off the SAN storage but using the nodes local resources to run the Operating system including but not limited to CPU, Memory, and network connections.
Another pre-existing example of creating a hyper-visor cluster is to have nodes usually between 2 or 3 that do not use a shared storage system to hold Virtual machine data. Each node stores virtual machine data on local disks. Then to achieve High availability, the nodes replicate or mirror data between themselves on to each other's local disk. The replication happens over a network connection either dedicated or not, but usually dedicated. This method is demonstrated in FIG. 2.
Both of the previous typical examples for Hyper-visor clusters, provide a level of High availability and redundancy when implementing a Hyper-visor cluster, each with its own benefits. Additionally many businesses and industries are starting to realize the benefits of utilizing virtual machines in the organizations. However, both can become prohibitively expensive and each has certain drawbacks. The shared storage method requires non-blocking switch fabric to connect the nodes to the Shared storage system additionally this fabric has to be redundant. The storage system, because it has to service read write transactions from multiple nodes, requires expensive equipment and software to keep up with performance requirements to maintain expected performance. The drawback to this is that since each node connects to the shared storage its own designated space for internal storage goes unused, this creates increased space utilization ratio to the amount of VM's that can be run.
The non-shared storage drawback is that since its local storage has to be shared between 2 or more nodes, actual utilization of the disk has to be reserved. As well as each nodes disk activity is increased in accordance to the amount of nodes replicating to it. The other limitation is that since each node is limited to the amount of other nodes it can replicate data with; it has to make sure it reserves enough memory to support a failover. This can mean that in a failover event the load for a node can increase from 50% to 100%.
As can be seen, there is a need for solutions to these and other problems.